ref: https://vivek-singh.medium.com/system-design-cheat-sheet-318ba2e34723
本篇文章是一個筆記文,紀錄關於 System Design 路上常遇到的架構與元件,譬如
1. LoadBalancer
2. Caches
3. Queues
4. Configuration Service
5. API Gateway
6. Service Mesh
7. CDN
8. Cassandra
9. Snowflake
10. Numbers
每個概念都還會附上一些相關影片與文章,也因為是個筆記內容,因此每個元件的介紹都不會非常詳細,都是小小段落介紹每個元件的最基本概念。
譬如 LoadBalancer 的筆記有
1. L4/L7 兩種的差異
2. AWS 上 ELB/ALB/NLB 的三種差異
3. LB 的演算法, Round Robin,Weighted RR, Least Connection/Response Time/Resource based 等
Caches
1. 實作有 Memcached, Redis 等相關專案
2. 什麼時候會使用 Memcached:
a. 需求簡單,譬如單純 Key/Value 字串,可以輕易地透過調整 cores/threads 來調整效能。
b. Volatile,沒有儲存機制
c. 只有 LRU 的 Cache 演算法
d. Key 最多 250B, Value 最多 1MB
3. 什麼時候使用 Redis
a. 需要儲存 object,而非單純 string
b. 支援多種演算法
c. 支援 data store,可以達到 non-volatile 效果
d. 可以支援 Set/Hash/List/Sorted Set 不同型態
這類型的文章對於踏入 System Design 能夠提供一個簡易的入門介紹,先有哪些類別需要學習,再針對每個類別獨立學習也是一個不錯的學習路徑。
同時也有1部Youtube影片,追蹤數超過1萬的網紅霜語VanessaDing,也在其Youtube影片中提到,從今天起至12/31,每人一天可投出你神聖的一票,希望大家能與我一起努力到最後!把我的音樂及活力散佈到全世界。 一天一票,有機會抽機票! Now I'm putting effort to earn the intern of Mariana. I'm in the second round, wh...
「string value」的推薦目錄:
- 關於string value 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於string value 在 BorntoDev Facebook 的精選貼文
- 關於string value 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳解答
- 關於string value 在 霜語VanessaDing Youtube 的最讚貼文
- 關於string value 在 What does this new String[] and String.value() code mean? 的評價
- 關於string value 在 StringValue used instead of String type · Issue #114 - GitHub 的評價
string value 在 BorntoDev Facebook 的精選貼文
เพื่อน ๆ รู้หรือไม่ 💡 ว่าการเก็บข้อมูลที่แสนจะมากมายมหาศาลของ Facebook นั้นเขามีวิธีการเก็บอย่างไร และใช้ฐานข้อมูลแบบไหน ?? วันนี้เรามาหาคำตอบกันเลยจ้า !! ❤️
.
🔹 Facebook นั้นมีผู้ใช้ประมาณ 1.2 พันล้านคน ซึ่งถือว่าเยอะมากกกก -0- และทุกคนนั้นจะเห็นหน้าเพจเป็นแบบไดนามิก ซึ่งทาง Facebook ต้องใช้ Tools ต่าง ๆ ในการจัดเก็บข้อมูลเพื่อให้รองรับกิจกรรมต่าง ๆ เช่น การกดไลก์ แสดงความคิดเห็น และการแชร์ เป็นต้น
.
👉 ซึ่งในปัจจุบันทาง Facebook มีการใช้ฐานข้อมูลแบบ SQL ไม่ว่าจะเป็น MySQL และ InnoDB ด้วยประสิทธิภาพและความน่าเชื่อถือของทั้งสอง รองรับข้อมูลที่มหาศาลได้ แต่ก็จะมีข้อจำกัดบางอย่าง จึงได้พัฒนาฐานข้อมูลที่ชื่อว่า RocksDB เพื่อมาใช้ร่วมกันนั่นเอง
.
ซึ่งเจ้า RocksDB เป็นฐานข้อมูลแบบ Embeddable Key-value จัดเก็บข้อมูลได้อย่างรวดเร็ว แถมยังเป็น Open-Source สร้างและใช้งานบน Facebook เขียนด้วยภาษา C++
.
✨ คุณสมบัติ
🔸 1) สามารถปรับขนาดให้ทำงานบนเซิร์ฟเวอร์ที่มี Core CPU จำนวนมาก
RocksDB มีข้อดีที่ช่วยให้สามารถจัดการกับเซิร์ฟเวอร์แบบ Muti Core ได้อย่างมีประสิทธิภาพ แถมยังสามารถแบ่งพาร์ติชันให้เป็นฐานข้อมูลแบบ Read-only และ Read-write
.
🔸 2) ใช้พื้นที่เก็บข้อมูลได้อย่างมีประสิทธิภาพ
สามารถบีบอัดข้อมูลซึ่งสามารถลดพื้นที่เก็บข้อมูลลงได้ และทำงานได้อย่างรวดเร็ว ลดปัญหาคอขวดของข้อมูล
.
🔸 3) มีความยืดหยุ่น
RocksDB สามารถจัดการและขยายได้ง่าย มีหน่วยเก็บข้อมูลที่มีประสิทธิภาพในการอ่านและเขียนนั่นเอง รองรับข้อมูลได้หลากหลาย
.
🌈 RocksDB ใช้สถาปัตยกรรมแบบ Pluggable คือสามารถปรับเปลี่ยนได้ง่ายโดยไม่ส่งผลต่อสถาปัตยกรรมของระบบ ซึ่งสามารถปรับใช้กับ Workloads และ Hardware ที่แตกต่างกันได้นั่นเอง
.
⚙️ วิธีใช้งานเบื้องต้น
RocksDB จะใช้ Methods Put, Delete, และ Get เพื่อแก้ไข ลบ และ Query ข้อมูลนั่นเอง
.
👨💻 โค้ดตัวอย่าง
เป็นการย้ายค่าไปเก็บไว้ภายใต้ Key1 และ Key2
.
std::string value;
rocksdb::Status s = db->Get(rocksdb::ReadOptions(), key1, &value);
if (s.ok()) s = db->Put(rocksdb::WriteOptions(), key2, value);
if (s.ok()) s = db->Delete(rocksdb::WriteOptions(), key1);
.
⚡ RocksDB เหมาะกับงานแบบใด ?
- ใช้จัดเก็บประวัติการเข้าชม และสถานะของผู้ใช้
- ตรวจจับสแปม
- ใช้กับ Graph-search ที่ต้องสแกนข้อมูลแบบเรียลไทม์
- ใช้กับ Hadoop
- ใช้ในงานที่รองรับ Message Queue
.
ซึ่งเขาเปิดให้เหล่า Dev ได้ลองเล่นกันสักพักล่ะใน GitHub หากใครสนใจสามารถคลิกลิงค์ไปลองใช้งานกันได้เลย
💥 GitHub : https://github.com/facebook/rocksdb
.
📑 และสามารถอ่านข้อมูลเพิ่มเติมเกี่ยวกับ RocksDB ได้ที่ >> https://rocksdb.org/ , https://engineering.fb.com/2013/11/21/core-data/under-the-hood-building-and-open-sourcing-rocksdb/
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
string value 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳解答
เขียนโค้ดให้ปลอดภัย
ก็เป็นทักษะอย่างหนึ่งที่ควรรู้
ตัวอย่างเป็นโค้ด PHP
.
ให้คิดว่าตัวแปร $value มีค่าเป็นสตริง
ข้างในอยู่ในรูปแบบตัวเลข
เช่น เอาไว้ใช่เก็บพวกเลข session id หรือ token อะไรก้ได้
.
แล้วสมมติว่า $value
มันดันรับค่าเป็น '0e......' (ตามด้วยตัวเลข)
เช่น
$value = '0e125996890409996004'
.
แบบนี้ถ้าใช่การเปรียบเทียบ
ในนิพจน์ของประโยคเปรียบเทียบ
ใช้โดยไม่ระวังตัวแล้วละก็
.
ก็อาจเกิดช่องโหว่
ถ้าเบาๆ หน่อยก็เป็น bug นิดหน่อย
.
แต่ถ้าร้ายแรง ก็จะกลายเป็นช่องโหว่ความปลอดภัยได้ด้วย
ยิ่งในเงื่อนไข
มันเอาไว้เช็คพวกสิทธิต่างๆ ด้วยแล้วละก็
ถ้าเช็คพลาด หลุดไปได้
ก็จะเข้าถึงสิ่งที่ไม่ควรเข้าถึงได้
แบบนี้ hacker นั่งยิ้มเลย
.
✍ เขียนโดย โปรแกรมเมอร์ไทย thai programmer
Write the code safely.
It's one skill to know.
Example is a PHP code
.
To think that $value variant is worth a string.
Inside is in number form.
For example, keep those session id or token numbers.
.
And assume $value
It accepts value as '0 e......' (followed by numbers)
For example,
$value = '0e125996890409996004'
.
This is if it's a comparison.
In the litigation of comparison sentences
Use it without being careful.
.
Maybe a loophole.
If it's a little bit of a bug.
.
But if it's deadly, it can also be a safety loophole.
The more in terms.
It's for checking the rights too.
If you miss it, you can slip it.
It's gonna reach the unaccountable
This is a hacker sitting and smiling.
.
✍ Written by Thai programmer thai coderTranslated
string value 在 霜語VanessaDing Youtube 的最讚貼文
從今天起至12/31,每人一天可投出你神聖的一票,希望大家能與我一起努力到最後!把我的音樂及活力散佈到全世界。
一天一票,有機會抽機票!
Now I'm putting effort to earn the intern of Mariana.
I'm in the second round, which is the top 14 of all the candidate.
Please share and vote for me as possible as you can.
The 3 people who have won the most of vote could get into the final.
❤️投票連結:https://marianas18.act.kkday.com/vote
❤️投票方式:點選 "3號 #丁霜語Vanessa-投他一票"系統會與個人臉書連結確認後即可完成投票程序!
❤️Vote Link:https://marianas18.act.kkday.com/vote
From today till 12/31,One vote from each one."No.3 丁霜語 Vanessa Ding"
Every day voting,Let it become a habit
❤️How to vote:
Go to the link of Mariana Tourism Bureau official website- The latest news- Voting link- No.3 丁霜語, the system will connect to your Facebook account to complete the voting process.
只要每天分享給三個人,相信目標離我不遠!
🌷天天投,就有機會抽塞班島來回機票,及羅塔島高爾夫度假村住宿劵
You'll have chance to win Saipan hotel and flight ticket!!
我是丁霜語 Vanessa,一位烏克麗麗演奏家
熱愛音樂,也熱愛旅行!
每一次的旅途中的總是挑戰著自己的極限,證明了生活中的意義與價值!
同時也享受著與大自然共處的時刻,
在潛水中靜靜的體會海洋的美麗,在行腳中欣賞著大自然的鬼斧神工
旅遊是我創作音樂的泉源,用四條弦彈奏出世界每個角落的感動!
對我來說生命中最重要的四元素-熱情、勇敢、有生命力、勇於挑戰的
馬里亞納是個很特別的島嶼,我會用心的體會它的海洋、人文、土地…
用一把烏克麗麗譜出屬於它的主題曲,傳達著馬里亞納的風情,帶給你們視/聽覺的饗宴!
I'm Vanessa Ding, an Uklele musician.I love music and traveling!I prove the meaning and value through by every trip that I had, because I challenge my limit as possible as I can.
Meanwhile, I enjoy to get along with the nature,
To experience the beauty and silence of our ocean when I'm diving.To admire the greatness of the art that this world creat when I'm climbing.
Traveling is my inspiration, I could use the four string to play different emotion from the different corner around the world.
The most important four elements to me is:
Passion、Braveness、Vitality、Challenge.
Mariana is a special place, I'll use my heart to feel the ocean, culture and land that she has.
I'll use my Uklele to compose a theme song for her, express the savor of Mariana, let everyone soak in her atmosphere.
#mariana #travel #diving #vote #ocean #ukulele #life #music
string value 在 StringValue used instead of String type · Issue #114 - GitHub 的推薦與評價
This won't help with integer types, but you can leverage the omitempty json struct tag to omit empty strings from serialization. Since DynamoDB ... ... <看更多>
string value 在 What does this new String[] and String.value() code mean? 的推薦與評價
... <看更多>
相關內容